|
1: |
|
0(#) |
→ # |
2: |
|
x + # |
→ x |
3: |
|
# + x |
→ x |
4: |
|
0(x) + 0(y) |
→ 0(x + y) |
5: |
|
0(x) + 1(y) |
→ 1(x + y) |
6: |
|
1(x) + 0(y) |
→ 1(x + y) |
7: |
|
1(x) + 1(y) |
→ 0((x + y) + 1(#)) |
8: |
|
(x + y) + z |
→ x + (y + z) |
9: |
|
# - x |
→ # |
10: |
|
x - # |
→ x |
11: |
|
0(x) - 0(y) |
→ 0(x - y) |
12: |
|
0(x) - 1(y) |
→ 1((x - y) - 1(#)) |
13: |
|
1(x) - 0(y) |
→ 1(x - y) |
14: |
|
1(x) - 1(y) |
→ 0(x - y) |
15: |
|
not(true) |
→ false |
16: |
|
not(false) |
→ true |
17: |
|
if(true,x,y) |
→ x |
18: |
|
if(false,x,y) |
→ y |
19: |
|
eq(#,#) |
→ true |
20: |
|
eq(#,1(y)) |
→ false |
21: |
|
eq(1(x),#) |
→ false |
22: |
|
eq(#,0(y)) |
→ eq(#,y) |
23: |
|
eq(0(x),#) |
→ eq(x,#) |
24: |
|
eq(1(x),1(y)) |
→ eq(x,y) |
25: |
|
eq(0(x),1(y)) |
→ false |
26: |
|
eq(1(x),0(y)) |
→ false |
27: |
|
eq(0(x),0(y)) |
→ eq(x,y) |
28: |
|
ge(0(x),0(y)) |
→ ge(x,y) |
29: |
|
ge(0(x),1(y)) |
→ not(ge(y,x)) |
30: |
|
ge(1(x),0(y)) |
→ ge(x,y) |
31: |
|
ge(1(x),1(y)) |
→ ge(x,y) |
32: |
|
ge(x,#) |
→ true |
33: |
|
ge(#,0(x)) |
→ ge(#,x) |
34: |
|
ge(#,1(x)) |
→ false |
35: |
|
log(x) |
→ log'(x) - 1(#) |
36: |
|
log'(#) |
→ # |
37: |
|
log'(1(x)) |
→ log'(x) + 1(#) |
38: |
|
log'(0(x)) |
→ if(ge(x,1(#)),log'(x) + 1(#),#) |
39: |
|
# * x |
→ # |
40: |
|
0(x) * y |
→ 0(x * y) |
41: |
|
1(x) * y |
→ 0(x * y) + y |
42: |
|
(x * y) * z |
→ x * (y * z) |
43: |
|
x * (y + z) |
→ (x * y) + (x * z) |
44: |
|
app(nil,l) |
→ l |
45: |
|
app(cons(x,l1),l2) |
→ cons(x,app(l1,l2)) |
46: |
|
sum(nil) |
→ 0(#) |
47: |
|
sum(cons(x,l)) |
→ x + sum(l) |
48: |
|
sum(app(l1,l2)) |
→ sum(l1) + sum(l2) |
49: |
|
prod(nil) |
→ 1(#) |
50: |
|
prod(cons(x,l)) |
→ x * prod(l) |
51: |
|
prod(app(l1,l2)) |
→ prod(l1) * prod(l2) |
52: |
|
mem(x,nil) |
→ false |
53: |
|
mem(x,cons(y,l)) |
→ if(eq(x,y),true,mem(x,l)) |
54: |
|
inter(x,nil) |
→ nil |
55: |
|
inter(nil,x) |
→ nil |
56: |
|
inter(app(l1,l2),l3) |
→ app(inter(l1,l3),inter(l2,l3)) |
57: |
|
inter(l1,app(l2,l3)) |
→ app(inter(l1,l2),inter(l1,l3)) |
58: |
|
inter(cons(x,l1),l2) |
→ ifinter(mem(x,l2),x,l1,l2) |
59: |
|
inter(l1,cons(x,l2)) |
→ ifinter(mem(x,l1),x,l2,l1) |
60: |
|
ifinter(true,x,l1,l2) |
→ cons(x,inter(l1,l2)) |
61: |
|
ifinter(false,x,l1,l2) |
→ inter(l1,l2) |
|
There are 71 dependency pairs:
|
62: |
|
0(x) +# 0(y) |
→ 0#(x + y) |
63: |
|
0(x) +# 0(y) |
→ x +# y |
64: |
|
0(x) +# 1(y) |
→ x +# y |
65: |
|
1(x) +# 0(y) |
→ x +# y |
66: |
|
1(x) +# 1(y) |
→ 0#((x + y) + 1(#)) |
67: |
|
1(x) +# 1(y) |
→ (x + y) +# 1(#) |
68: |
|
1(x) +# 1(y) |
→ x +# y |
69: |
|
(x + y) +# z |
→ x +# (y + z) |
70: |
|
(x + y) +# z |
→ y +# z |
71: |
|
0(x) -# 0(y) |
→ 0#(x - y) |
72: |
|
0(x) -# 0(y) |
→ x -# y |
73: |
|
0(x) -# 1(y) |
→ (x - y) -# 1(#) |
74: |
|
0(x) -# 1(y) |
→ x -# y |
75: |
|
1(x) -# 0(y) |
→ x -# y |
76: |
|
1(x) -# 1(y) |
→ 0#(x - y) |
77: |
|
1(x) -# 1(y) |
→ x -# y |
78: |
|
EQ(#,0(y)) |
→ EQ(#,y) |
79: |
|
EQ(0(x),#) |
→ EQ(x,#) |
80: |
|
EQ(1(x),1(y)) |
→ EQ(x,y) |
81: |
|
EQ(0(x),0(y)) |
→ EQ(x,y) |
82: |
|
GE(0(x),0(y)) |
→ GE(x,y) |
83: |
|
GE(0(x),1(y)) |
→ NOT(ge(y,x)) |
84: |
|
GE(0(x),1(y)) |
→ GE(y,x) |
85: |
|
GE(1(x),0(y)) |
→ GE(x,y) |
86: |
|
GE(1(x),1(y)) |
→ GE(x,y) |
87: |
|
GE(#,0(x)) |
→ GE(#,x) |
88: |
|
LOG(x) |
→ log'(x) -# 1(#) |
89: |
|
LOG(x) |
→ LOG'(x) |
90: |
|
LOG'(1(x)) |
→ log'(x) +# 1(#) |
91: |
|
LOG'(1(x)) |
→ LOG'(x) |
92: |
|
LOG'(0(x)) |
→ IF(ge(x,1(#)),log'(x) + 1(#),#) |
93: |
|
LOG'(0(x)) |
→ GE(x,1(#)) |
94: |
|
LOG'(0(x)) |
→ log'(x) +# 1(#) |
95: |
|
LOG'(0(x)) |
→ LOG'(x) |
96: |
|
0(x) *# y |
→ 0#(x * y) |
97: |
|
0(x) *# y |
→ x *# y |
98: |
|
1(x) *# y |
→ 0(x * y) +# y |
99: |
|
1(x) *# y |
→ 0#(x * y) |
100: |
|
1(x) *# y |
→ x *# y |
101: |
|
(x * y) *# z |
→ x *# (y * z) |
102: |
|
(x * y) *# z |
→ y *# z |
103: |
|
x *# (y + z) |
→ (x * y) +# (x * z) |
104: |
|
x *# (y + z) |
→ x *# y |
105: |
|
x *# (y + z) |
→ x *# z |
106: |
|
APP(cons(x,l1),l2) |
→ APP(l1,l2) |
107: |
|
SUM(nil) |
→ 0#(#) |
108: |
|
SUM(cons(x,l)) |
→ x +# sum(l) |
109: |
|
SUM(cons(x,l)) |
→ SUM(l) |
110: |
|
SUM(app(l1,l2)) |
→ sum(l1) +# sum(l2) |
111: |
|
SUM(app(l1,l2)) |
→ SUM(l1) |
112: |
|
SUM(app(l1,l2)) |
→ SUM(l2) |
113: |
|
PROD(cons(x,l)) |
→ x *# prod(l) |
114: |
|
PROD(cons(x,l)) |
→ PROD(l) |
115: |
|
PROD(app(l1,l2)) |
→ prod(l1) *# prod(l2) |
116: |
|
PROD(app(l1,l2)) |
→ PROD(l1) |
117: |
|
PROD(app(l1,l2)) |
→ PROD(l2) |
118: |
|
MEM(x,cons(y,l)) |
→ IF(eq(x,y),true,mem(x,l)) |
119: |
|
MEM(x,cons(y,l)) |
→ EQ(x,y) |
120: |
|
MEM(x,cons(y,l)) |
→ MEM(x,l) |
121: |
|
INTER(app(l1,l2),l3) |
→ APP(inter(l1,l3),inter(l2,l3)) |
122: |
|
INTER(app(l1,l2),l3) |
→ INTER(l1,l3) |
123: |
|
INTER(app(l1,l2),l3) |
→ INTER(l2,l3) |
124: |
|
INTER(l1,app(l2,l3)) |
→ APP(inter(l1,l2),inter(l1,l3)) |
125: |
|
INTER(l1,app(l2,l3)) |
→ INTER(l1,l2) |
126: |
|
INTER(l1,app(l2,l3)) |
→ INTER(l1,l3) |
127: |
|
INTER(cons(x,l1),l2) |
→ IFINTER(mem(x,l2),x,l1,l2) |
128: |
|
INTER(cons(x,l1),l2) |
→ MEM(x,l2) |
129: |
|
INTER(l1,cons(x,l2)) |
→ IFINTER(mem(x,l1),x,l2,l1) |
130: |
|
INTER(l1,cons(x,l2)) |
→ MEM(x,l1) |
131: |
|
IFINTER(true,x,l1,l2) |
→ INTER(l1,l2) |
132: |
|
IFINTER(false,x,l1,l2) |
→ INTER(l1,l2) |
|
The approximated dependency graph contains 14 SCCs:
{106},
{78},
{79},
{80,81},
{87},
{63-65,67-70},
{97,100-102,104,105},
{114,116,117},
{72-75,77},
{82,84-86},
{120},
{122,123,125-127,129,131,132},
{91,95}
and {109,111,112}.